System, apparatus, and method of frequency offset estimation and correction for mobile remotes in a communication network

ABSTRACT

A frequency offset estimation and correction apparatus including a frame averaging unit to average a plurality of frequency offset values to obtain a frame offset average for each of a plurality of frames, a re-sampling unit to produce a plurality of interpolated frequency offset values uniformly distributed over a time period of a frame of the plurality of frames based on the frame offset average of the frame and a frame offset average of at least one frame that precedes the frame, and an exponential averaging unit to calculate the estimated frequency offset based on the plurality of interpolated frequency offset values weighted by an exponential averaging coefficient.

CROSS-REFERENCE TO RELATED APPLICATIONS

This invention claims the benefit of U.S. Provisional Application No.61/309,708, filed Mar. 2, 2010, the entire contents of which isincorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates in general to communication networks and, inparticular, to a system, apparatus, and method of frequency offsetestimation and correction for mobile remotes in a communication network.

2. Discussion of the Background

A significant amount of research and development has been directed toproviding broadband connectivity on aircraft using satellite networks,and multiple techniques have been proposed for providing broadbandconnectivity over satellite networks in high speed mobile environments.One technique proposes providing broadband connectivity over a codedivision multiple access (CDMA) satellite network. Other techniquespropose providing broadband connectivity over time division multipleaccess (TDMA) channels using direct sequence spread spectrum (DSSS).

Techniques for providing broadband connectivity in a high speed mobileenvironments may address the problem of Doppler shift of a receivedcarrier, because Doppler shift causes frequency synchronization todeteriorate, which leads to erroneous symbol decisions, data loss, andcommunication link failure.

BRIEF SUMMARY OF THE INVENTION

Accordingly, an object of the present invention is to provide afrequency offset estimation and correction apparatus, method, andcomputer readable storage medium.

According to one aspect of the invention, there is provided a frequencyoffset estimation and correction apparatus including a frame averagingunit to average, for each of a plurality of frames, a plurality offrequency offset values to obtain a frame offset average for each of theplurality of frames, a re-sampling unit to produce, for each of theplurality of frames, a plurality of interpolated frequency offset valuesuniformly distributed over a time period of a frame of the plurality offrames based on the frame offset average of the frame and a frame offsetaverage of at least one frame that precedes the frame, and anexponential averaging unit to calculate the estimated frequency offsetbased on the plurality of interpolated frequency offset values weightedby an exponential averaging coefficient.

According to another aspect of the invention, there is provided afrequency offset estimation and correction method including averaging,for each of a plurality of frames, a plurality of frequency offsetvalues to obtain a frame offset average for each frame, producing, foreach of the plurality of frames, a plurality of interpolated frequencyoffset values uniformly distributed over a time period of the framebased on the frame offset average of the frame and a frame offsetaverage of at least one previous frame, and calculating the estimatedfrequency offset based on the plurality of interpolated frequency offsetvalues weighted by an exponential averaging coefficient.

According to a further aspect of the invention, there is provided acomputer readable storage medium storing computer readable instructionsthereon that, when executed by an arithmetic processor, direct thearithmetic processor to perform a frequency offset estimation andcorrection method including averaging, for each of a plurality offrames, a plurality of frequency offset values to obtain a frame offsetaverage for each frame, producing, for each of the plurality of frames,a plurality of interpolated frequency offset values uniformlydistributed over a time period of the frame based on the frame offsetaverage of the frame and a frame offset average of at least one previousframe, and calculating the estimated frequency offset based on theplurality of interpolated frequency offset values weighted by anexponential averaging coefficient.

According to a further aspect of the invention, there is provided acommunications system including a communications hub including areceiver to receive a plurality of communications bursts and generate afrequency offset value for each of the bursts, to generate frequencyoffset values, a frame averaging unit to average, for each of aplurality of frames, a plurality of the frequency offset values toobtain a frame offset average for each of the plurality of frames, are-sampling unit to produce, for each of the plurality of frames, aplurality of interpolated frequency offset values uniformly distributedover a time period of a frame of the plurality of frames based on theframe offset average of the frame and a frame offset average of at leastone frame that precedes the frame, and an exponential averaging unit tocalculate the estimated frequency offset based on the plurality ofinterpolated frequency offset values weighted by an exponentialaveraging coefficient, and a transmitter to transmit the estimatedfrequency offset, and a remote communications unit including a receiverto receive the estimated frequency offset and synchronize a carrierfrequency source of the remote communications unit based on the receivedestimated frequency offset.

According to a further aspect of the invention, there is provided aremote communications unit including a receiver to receive an estimatedfrequency offset, and a frequency offset correction unit to synchronizea carrier frequency source and apply a predicted timing correction tobursts before transmission of the bursts based on the estimatedfrequency offset, the estimated frequency offset being determinedaccording to an exponential average of a plurality of interpolatedfrequency offset values weighted by an exponential averagingcoefficient, the plurality of interpolated frequency offset values beinguniformly distributed over a time period of a frame based on frameoffset averages of frequency offset values of the frames.

According to a further aspect of the invention, there is provided a hubunit including a frequency offset estimation and correction apparatusincluding a frame averaging unit to average, for each of a plurality offrames, a plurality of frequency offset values to obtain a frame offsetaverage for each of the plurality of frames, a re-sampling unit toproduce, for each of the plurality of frames, a plurality ofinterpolated frequency offset values uniformly distributed over a timeperiod of a frame of the plurality of frames based on the frame offsetaverage of the frame and a frame offset average of at least one framethat precedes the frame, and an exponential averaging unit to calculatethe estimated frequency offset based on the plurality of interpolatedfrequency offset values weighted by an exponential averagingcoefficient.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete appreciation of the invention and many of the attendantadvantages thereof will be readily obtained as the same becomes betterunderstood by reference to the following detailed description whenconsidered in connection with the accompanying drawings, wherein:

FIG. 1 illustrates a communications system;

FIG. 2 is a block diagram of a frequency offset estimation apparatus;

FIG. 3 is a block diagram of a frame averaging unit of a frequencyoffset estimation apparatus;

FIG. 4 is a schematic block diagram illustrating a data processingapparatus;

FIG. 5 is a flow diagram illustrating a frequency offset estimationmethod;

FIG. 6 is a flow diagram illustrating a re-sampling method;

FIG. 7 is a flow diagram illustrating an exponential averaging method;

FIG. 8 is a graph illustrating frequency offset values and frame offsetaverages;

FIG. 9 is a chart illustrating sequencing of frame sequence numbers;

FIG. 10 is a graph illustrating frequency offset values, frame offsetaverages, and interpolated frequency offset values;

FIG. 11 is a graph illustrating frequency offset values, frame offsetaverages, interpolated frequency offset values, and exponential averagesamples;

FIG. 12 is a graph illustrating comparative examples of exponentialaverages for various values of an equivalent moving average window size;

FIG. 13 is a graph illustrating a linearly predicted frequency offset;

FIGS. 14-19 are graphs illustrating waveforms from a simulation of thefrequency offset estimation algorithm of the present invention, for agiven set of parameters;

FIGS. 20-23 are graphs illustrating waveforms from a simulation of thefrequency offset estimation algorithm of the present invention, for agiven set of parameters;

FIGS. 24-27 are graphs illustrating waveforms from a simulation of thefrequency offset estimation algorithm of the present invention, for agiven set of parameters; and

FIGS. 28-33 are graphs illustrating waveforms from a simulation of thefrequency offset estimation algorithm of the present invention, for agiven set of parameters.

DETAILED DESCRIPTION OF THE INVENTION

In satellite networks such as in multi-frequency time division multipleaccess (MF-TDMA) satellite networks, timing and frequency shifts anddrifts between a communication hub and a mobile communication remote dueto Doppler shift may be accounted for and addressed. In satellitenetworks such as multi-frequency time division multiple access (MF-TDMA)satellite networks, a hub of the network is able to determine (i.e.,estimate) frequency offset values on a burst by burst basis based onreceived bursts from a remote.

The Doppler shift effect causes a change in an observed frequency of anRF signal relative to a frequency at which the RF signal wastransmitted. There may be a significant Doppler shift effect in asatellite network including a remote moving with respect to a satellite.For example, with regard to a remote residing in or on an aircraftmoving relative to a geostationary (GEO) satellite, the Doppler shiftfrequency, Δf, is given by the Doppler equation:

Δf=((v*cos(θ_(EL)))/c)*f ₀, where  (1)

v is the speed of the remote, c is the speed of light, f₀ is the carrierfrequency transmitted by the remote, and θ_(EL) is an elevation anglewith respect to an arc of the geostationary orbit (GSO) of thesatellite. For a constant velocity and zero acceleration of the remote,a constant timing drift and a constant frequency shift caused by theDoppler shift effect is observed. For a changing velocity and non-zeroacceleration of the remote, the observed timing drift and frequencyshift changes over time. To mitigate erroneous symbol decisions, dataloss, and communication link failure, the observed timing drift andfrequency shift may be accounted for and addressed over time.

The velocity and acceleration experienced by a remote varies dependingon the type of vehicle carrying the remote. For example, a train haselongated periods of acceleration and a relatively narrow range ofvelocities compared to an aircraft. Thus, a train may experience timingdrift and frequency shift, but an accumulated timing drift and frequencyshift is small and relatively insignificant as compared to the aircraft.In contrast, an aircraft operates over a relatively wide range ofvelocities and experiences great accelerations over a short period oftime as compared to a train. As a result, a total timing drift andfrequency shift may be more significant.

Assuming a GEO satellite having a small elevation angle (i.e., θ_(EL) issmall), doppler rate can be approximated by v/c, where v is the velocityof a moving remote and c is the speed of light. Taking an airplane as anexample, where the velocity of the airplane is 1188 Km/h (330 m/s) and cis 3×10⁸ m/s, v/c=(330/3×10⁸)=1.1×10⁻⁶, or 1.1 ppm (parts per million).In terms of Doppler Rate, the Doppler frequency shift will be 1.1×10⁻⁶Hz for every 1 Hz (or 1.1 Hz for every MHz). Similarly, in terms oftiming drift due to Doppler effect, the timing drift will be 1.1×10⁻⁶second for every second, or 1.1 us/s.

Thus, for a remote operating at an upstream transmission frequency of14.5 GHz on an aircraft moving at a speed of approximately 1188 Km/hourwhich experiences an acceleration of 17 m/s², a frequency shift of 15950Hz, a frequency drift of 822 Hz/s, and a timing drift of 1100 ns/s willbe observed at a hub that receives an upstream transmission from theremote, due to Doppler shift. Over time, the timing and frequency shiftsand drifts may exceed tolerance limits of a demodulator of the hub,which may lead to erroneous symbol decisions, data loss, andcommunication link failure in a conventional system.

Conventional frequency error correction in a satellite network mayinclude averaging collected estimated frequency errors over apredetermined Upstream Control Protocol (UCP) time period. Thus,conventionally, an average estimate of frequency error was produced thatcorresponds only generally with a UCP period, regardless of the timeduration of the UCP period. This approach may be suitable forcommunication networks consisting of stationary remotes andgeostationary (GEO) satellites. However, in the context ofcommunication-on-the-move (COTM) networks and/or networks involvingnon-GEO satellites, a slant distance between a satellite and a remotemay shift very rapidly because of relative movement between thesatellite and the remote, causing timing and frequency shifts and driftsthat cannot be compensated for using a simple arithmetic average ofestimated frequency errors. Additionally, the estimated frequency errorsinclude noise, because the estimated frequency offsets, which areproduced by a hub of the satellite network, are not perfectly accurate.

Although a hub of a network is able to determine (i.e., estimate)frequency offset values on a burst by burst basis based on receivedbursts from a remote, bursts transmitted from a remote can be regular orsporadic, which results in a non-uniform distribution of the estimatedfrequency offset values over time at the hub. Additionally, a sequenceof the determined frequency offset values may be different than asequence of bursts from which the frequency offset values weredetermined, due to network routing that varies over time, communicationprotocols that vary over time, and hardware processing delays whichdepend upon the communication protocols and network routing that variesover time, for example. These characteristics of the determinedfrequency offset values may not present a problem conventionally, when asimple average of the frequency offset values is determined regardlessof the time sequencing and time non-uniformity of determined frequencyoffset values. However, the conventional simple average method is notsuitable in the context of COTM networks.

Thus, a frequency offset estimation and correction solution is neededwhich performs favorably in the context of COTM networks including noisein estimated frequency errors. The frequency offset estimation andcorrection solution may be able to correct an estimated frequency offseterror in a closed loop with a remote of the satellite network and alsoaccount for a communications delay between the hub and the remote of thesatellite network in the closed loop.

FIG. 1 is a block diagram of a communications system 100 according to anembodiment of the present invention including a hub 102, remotes 104 and106, and a satellite 108. The satellite 108 may include a GEO or anon-GEO satellite. As illustrated in FIG. 1, the hub 102 may communicatewith at least one of the remotes 104 and 106 via a satellite 108 over adownlink 110. Additionally, the remotes 104 and 106 communicate with thehub 102 via the satellite 108 over an uplink 112. Thus, the hub 102 andthe remotes 104 and 106 include transmitters and receivers forcommunication via the downlink 110 and the uplink 112. Here, thedownlink 110 includes data transmitted from the hub 102 to the remotes104 and 106, and the uplink 112 includes data transmitted from one ofthe remotes 104 and 106 to the hub. The remotes 104 and 106 includeexamples of a remote 104 at a fixed location, and a remote 106 which isnot fixed with respect to a geographic location. The remote 106 may beon, in, or integrated with a moving vehicle, such as a marine vessel,automobile, aircraft, or other mobile vehicle. Alternatively, the remote106 may be stationary, during at least some periods of time.

The remotes 104 and 106 communicate with client computers 124 and clientperipherals 126 via a local or wide area network (LAN/WAN) 114. The hub102 communicates with, for example, internet services 116, data services118, and voice services 120, via a LAN/WAN 114. Thus, the clientcomputers 124 and the client peripherals 126 may access the internetservices 116, the data services 118, and the voice services 120 via theuplink 110 and the downlink 112. Additionally, an operator of thecommunication system 100 may access parameters of the communicationsystem 100 via the network operator access 122.

With reference to FIG. 1, observed frequency offsets of carrier signalsreceived from the remotes 104 and 106 are tracked by the hub 102, sothat frequency offset correction commands can be sent to the remotes 104and 106. However, in embodiments of the communications system 100,frequency offset values that indicate a difference between a referencefrequency of the hub 102 and an observed carrier frequency of a receivedsignal are determined non-uniformly and disordered in time during a UCPperiod. The received frequency offset values are determinednon-uniformly and disordered in time during the upstream controlprotocol UCP period, for example, because of network routing that variesover time, communication protocols that vary over time, and hardwareprocessing delays which depend upon the communication protocols andnetwork routing that varies over time, for example.

FIG. 2 is a functional block diagram of a frequency offset estimationand correction apparatus 200 according to an embodiment of the presentinvention. The frequency offset estimation and correction apparatus 200may be included within one or more of the hub 102 and the remotes 104and 106. The frequency offset estimation and correction apparatus 200includes a frame averaging unit 202, a re-sampling unit 204, and anexponential averaging unit 206. In some embodiments, the apparatus 200may optionally include a linear prediction unit 208 and/or a frequencyoffset correction unit 210. In yet other embodiments, the frameaveraging unit 202, the re-sampling unit 204, the exponential averagingunit 206, and the linear prediction unit 208 may be included in the hub102, and the frequency offset correction unit 210 may be included in oneor more of the remotes 104 and 106.

The frame averaging unit 202 averages, for each of a plurality offrames, a plurality of frequency offset values within a frame of theplurality of frames, to obtain a frame offset average for the frame. There-sampling unit 204 produces, for each of the plurality of frames, aplurality of interpolated frequency offset values uniformly distributedover a time period of a frame of the plurality of frames, based on theframe offset average of the frame and a frame offset average of at leastone frame that precedes the frame. The exponential averaging unit 206calculates an estimated frequency offset based on the plurality ofinterpolated frequency offset values weighted by an exponentialaveraging coefficient. The linear prediction unit 208 determines apredicted frequency offset based on the estimated frequency offset and acommunications delay between the hub 102 and one of the remotes 104 and106. The predicted frequency offset includes a frequency offsetpredicted according to a time period of a communications delay betweenthe hub 102 and one of the remotes 104 and 106. The frequency offsetcorrection unit 210 synchronizes a carrier frequency source and appliesa predicted timing correction to transmitted bursts, to account for theestimated or predicted frequency offset and a predicted timing driftpredicted over a UCP period.

FIG. 3 is a functional block diagram of the frame averaging unit 202 ofFIG. 2. As illustrated in FIG. 3, the frame averaging unit 202 includesa frame sequencing unit 302 and a frame average unit 304. The framesequencing unit 302 sequences the plurality of frequency offset valuesamong N-frame blocks based on sequence numbers in received bursts, toproduce sequenced frequency offset values, and the frame average unit304 averages the sequenced frequency offset values to obtain the frameoffset average of each frame.

In the present embodiment of the invention, the frequency offsetestimation apparatus operates over individual UCP periods, which are 5seconds in duration. Within each UCP period, a plurality of frames existwhich are each 125 ms in duration. However, time periods of the UCP andthe frames within each UCP may be other than 5 s and 125 ms,respectively, as would be understood by one having ordinary skill in theart, and are also included within the scope of the invention.

To address the fact that the plurality of frequency offset values aredetermined by the hub 102 out of sequence with respect to timings ofbursts from which the plurality of frequency offset values weredetermined, the frame sequencing unit 302 sequences the plurality offrequency offset values by “un-wrapping” each frequency offset value,ferr_(k), based on a “wrapped” sequence number, n_(k), of a burstassociated with each frequency offset value ferr_(k), to arrive at an“un-wrapped” sequence number, m_(k). In the following explanation, awrapped sequence number and associated frequency offset estimate pairare referred to as (n_(k), ferr_(k)), and an un-wrapped sequence numberand associated frequency offset estimate pair are referred to as (m_(k),ferr_(k)), where ferr_(k) is the same for each pair. The operation ofthe frame sequencing unit 302 is described in further detail below withreference to FIGS. 6 and 8.

After the frame sequencing unit 302 sequences the frequency offsetvalues, the frame average unit 304 averages every frequency offset valueassociated with a frame, by referring to the values of the un-wrappedsequence numbers m_(k). That is, every frequency offset value ferr_(k)associated with an un-wrapped sequence number m_(k) that has a valuewhich designates the n^(th) frame is averaged, to obtain a frame offsetaverage of the n^(th) frame, frm_av(n). The frame sequencing unit 302averages the frequency offset values associated with a frame by a simpleaverage. Specifically, the frame sequencing unit 302 averages thefrequency offset values associated with a frame by summing the values ofeach of the frequency offset values of the frame, and dividing the sumby a number of the frequency offset values of the frame. It is notedthat, frames may exist without having any associated frequency offsetvalues. In that case, no frame offset average may be obtained for theframe, as the frame may not be associated with at least one frequencyoffset value. The operation of the frame average unit 304 is describedin further detail below with reference to FIG. 9.

Referring back to FIG. 2, the re-sampling unit 204 produces a pluralityof interpolated frequency offset values uniformly distributed over atime period of a frame, based on the frame offset average of the frameand a frame offset average of at least one frame that precedes theframe. In the present embodiment of the invention, the number ofinterpolated frequency offset values per frame (or number of bursts perframe), nbpf, is 10. However, other numbers of interpolated frequencyoffset values per frame would be understood by one having ordinary skillin the art, and are also included within the scope of the invention. Inthis case, the re-sampling unit 204 produces 10 uniformly interpolatedfrequency offset values per frame. The re-sampling unit 204 produces then^(th) interpolated frequency offset value of frame a, frm_(a) _(—)itp(n), according to equation (2):

$\begin{matrix}{{{{frm}_{a}{\_ itp}(n)} = {{{frm\_ av}\left( {a - 1} \right)} + {\left( \frac{n}{nbpf} \right)\left( {{{frm\_ av}(a)} - {{frm\_ av}\left( {a - 1} \right)}} \right)}}},\mspace{79mu} {where}} & (2)\end{matrix}$

frm_(a) _(—) itp(n) is the n^(th) interpolated frequency offset value offrame a; n ranges from 1 to nbpf; frm_av(a−1) is the frame offsetaverage of a frame previous to frame a; and frm_av(a) is the frameoffset average of frame a. In the remainder of this disclosure, theinterpolated frequency offset values produced for all frames aredesignated as frm_itp(n), without any particular frame designation, as aconcatenated string of the interpolated frequency offset values of eachframe with respect to the original ordering of the frames in a UCP. Theoperation of the re-sampling unit 204 is described in further detailbelow with reference to FIG. 10.

The exponential averaging unit 206 calculates an estimated frequencyoffset based on the interpolated frequency offset values and anexponential averaging coefficient, α. With reference to an n^(th)interpolated frequency offset value, the exponential averaging unit 206calculates the n^(th) estimated frequency offset sample, frm_exp_av(n),according to equations (3) and (4):

$\begin{matrix}{{{frm\_ exp}{\_ av}(n)} = {\left( {\alpha*{frm\_ itp}(n)} \right) + \left( {\left( {1 - \alpha} \right)*{frm\_ exp}{\_ av}\left( {n - 1} \right)} \right)}} & (3) \\{\mspace{79mu} {{\alpha = \frac{2}{{{nfw} \cdot {nbpf}} + 1}},{where}}} & (4)\end{matrix}$

nfw is an equivalent moving average window size, in units of frames. Theestimated frequency offset may be used directly by the frequency offsetcorrection unit 210 to correct a frequency offset of a carrier frequencysource. In an embodiment where the frequency offset correction unit 210is included within one of the remotes 104 and 106, the estimatedfrequency offset may be transmitted in a frequency error correctioncommand from the hub 102 to the one of the remotes 104 and 106, so thata frequency offset of a carrier frequency source of the one of theremotes 104 and 106 may be corrected. The operation of the exponentialaveraging unit 206 and the selection of the equivalent moving averagewindow size nfw is described in further detail below with reference toFIGS. 7 and 11.

The linear prediction unit 208 determines a predicted frequency offset,ferr_(proj), based on a last estimated frequency offset sample, anestimated frequency offset sample from p frames before the lastestimated frequency offset sample, and a known communications delay qbetween the hub 102 and one of the remotes 104 and 106. Morespecifically, the value of ferr_(proj) is determined according to adifference between the last sample of the exponential averagefrm_exp_av(n_(last)) and a sample of the exponential average p framesbefore the last sample of the exponential average,frm_exp_av(n_(last)−nbpf*p), and the known communications delay q (inunits of a number of frames), according to equation (5):

ferr _(proj) =frm_exp_(—) av(n _(last))+(q/p)(frm_exp_(—) av(n_(last))−frm_exp_(—) av(n _(last) −nbpf*p))  (5)

In embodiments of the invention that include the linear prediction unit208, the predicted frequency offset may be used directly by thefrequency offset correction unit 210 to correct a frequency offset of acarrier frequency source. In an embodiment where the frequency offsetcorrection unit 210 is included within one of the remotes 104 and 106,the predicted frequency offset may be transmitted in a frequency errorcorrection command from the hub 102 to the one of the remotes 104 and106, so that a carrier frequency offset of a carrier frequency source ofthe one of the remotes 104 and 106 may be corrected. The operation ofthe linear prediction unit 208 is described in further detail below withreference to FIG. 12.

It is noted that it is not necessary that the frequency offsetcorrection unit 210 be implemented in the same apparatus as theremainder of the frequency offset estimation and correction apparatus200. Instead, the frame averaging unit 202, the re-sampling unit 204,the exponential averaging unit 206, and the linear prediction unit 208may be implemented at the hub 102, and the frequency offset correctionunit 210 may be implemented at the remotes 104 and 106 (or vice versa).

FIG. 4 illustrates an embodiment of a hardware configuration 400 of thehub 102 and/or the remotes 104 and 106 in which the frequency offsetestimation and correction apparatus 200 of FIG. 2 may be implementedbased on execution of a software program. Alternatively, other mannersof implementing the present invention would be understood by one havingordinary skill in the art, and are also included within the scope of theinvention. For example, the present invention may be implemented usinghardware without software, firmware, or combinations of hardware,software, and firmware. The hardware configuration 400 includes ageneral purpose computer 408 including a bus 422 that connects a displaycontroller 410, a main memory 412, a Read Only Memory (ROM) 414, a diskcontroller 420, a general purpose arithmetic processor 424, and acommunication interface 426. The disk controller 420 interfaces severalcomputer readable mediums to the bus 422, such as a hard disk 416 and aremovable media drive 418. A user may interface with the general purposecomputer 408 via a display 402, a keyboard 404, and a pointing device406. The display controller 410 renders images provided to the display402.

The communication interface 426 connects to an antenna 428 forcommunication over a satellite network. Thus, the communicationinterface 426 includes receivers and transmitters for communication overa satellite network, such as hardware circuit components necessary toup-convert a frequency and/or phase modulated carrier signal to afrequency suitable for RF transmission. As part of a non-limiting groupof hardware components, the communication interface 426 may include areference frequency source, Digital-to-Analog Converters (DACs), VoltageControlled Oscillators (VCO), Phase Locked Loops (PLLs) and frequencysynchronizers, mixers, analog filters, Low Noise Amplifiers (LNAs), andother hardware components recognized as being used to up-convert amodulated carrier to a frequency suitable for RF transmission.

In operation, the arithmetic processor 424 retrieves executableinstructions stored on the hard disk 416 and/or the removable mediadrive 418, stores the executable instructions to the main memory 412,and executes the executable instructions from the main memory.Alternatively, the arithmetic processor 424 may execute instructionsdirectly from the hard disk 416 and/or the removable media drive 418 toimplement the present invention. As an alternative to the hard disk 416and/or the removable media drive 418, other computer readable storagemediums would be understood by those one having ordinary skill in theart, and are also included in the scope of the invention. Examples ofthe arithmetic processor 424 include a general purpose CentralProcessing Unit (CPU) and a Digital Signal Processor (DSP), forembodiments of the invention based at least in part on the execution ofsoftware, and a Field Programmable Gate Array (FPGA) and an ApplicationSpecific Integrated Circuit (ASIC), for embodiments of the inventionbased on hardware without software.

Embodiments of the invention may also include both general purposeprocessors executing software instructions (i.e., CPUs and/or DSPs) aswell as FPGAs and/or ASICs.

FIG. 5 is a flow diagram of an embodiment of a frequency offsetestimation and correction method 500 performed by the frequency offsetestimation and correction apparatus 200 of FIG. 2. The frequency offsetestimation and correction method 500 includes initialization at step502, frame sequencing at step 504, frame averaging at step 506,re-sampling at step 508, and exponential averaging at step 510. Afterthe exponential averaging at step 510, the frequency offset estimationand correction method 500 further includes an end of UCP check at step512, followed by a keep-alive conditions check at step 514. At the endof UCP check at step 512, it is determined whether the frame sequencingat step 504, the frame averaging at step 506, the re-sampling at step508, and the exponential averaging at step 510 has been executed over anentirety of a current UCP. If execution has occurred for the entirety of(i.e., through the end of) the current UCP, execution proceeds to thekeep-alive conditions check at step 514. If execution has not beencompleted through the end of the current UCP, execution of the framesequencing at step 504, the frame averaging at step 506, the re-samplingat step 508, and the exponential averaging at step 510 continues, asillustrated in FIG. 5.

At the keep-alive conditions check at step 514, it is determined whetherthe keep-alive conditions have been met. In one embodiment of thepresent invention, the keep-alive conditions include (1) a number of thefrequency offset values determined by the hub 102 being no less than 3within the current UCP period, (2) at least one frequency offset valuebeing received within a last second of the current UCP period, and (3) atime span between a first and a last frequency offset value beinggreater than 10 frames of time. Other “keep alive” conditions would beunderstood by one having ordinary skill in the art, and are within thescope of the invention. If the keep-alive conditions check at step 514is true, the frequency offset estimation and correction method 500continues with linear predicting at step 518, and frequency offsetcorrection at step 520. If the keep-alive conditions check at step 514is false, execution of the frequency offset estimation and correctionmethod 500 continues to step 516, where frequency offset estimation forthe current UCP is aborted. The frequency offset estimation andcorrection method 500 ends at step 522, as illustrated in FIG. 5.

FIG. 6 is a flow diagram of a frame sequencing method 600 correspondingto the frame sequencing 504 of FIG. 5, which is performed by the framesequencing unit 302 of FIG. 3. The frame sequencing method 600 includesinitialization at step 602 and receiving a current frequency estimateferr_(k) stamped (i.e., associated) with a sequence number n_(k), as(n_(k), ferr_(k)), at step 604. The initialization includes setting aninitial wrapped sequence number, n₀, to 0, setting an initial un-wrappedsequence number, m₀, to 0, and setting the index of the frame sequencingmethod 600, k, equal to 0.

At step 606, it is determined whether |n_(k)−n_(k−1)|<N_(wrap)/2, whereN_(wrap) is selected to be at least 2 times the maximum acceptablenumber of missing frame averages. For convenience, N_(wrap) is set to beequal to 16 in the following example of the frame sequencing method 600.In practice, for a UCP duration of 5 s and a frame duration of 125 ms,N_(wrap) may be selected to be 64, for example, to allow sequencing forup to a single sequence of 32 frame averages, based on ‘keep-alive’requirements of the frequency offset estimation method. Other values ofN_(wrap) may be also be selected. If the conditions at step 606 aretrue, the frame sequencing method 600 proceeds to step 610, where thevalue of the un-wrapped sequence number m_(k) to be associated with thecurrent frequency estimate ferr_(k) is set to be equal toN_(wrap)*ceil((m_(k−1)+1)/N_(wrap)−1)+n_(k), and it is determined thatthe current frequency offset value ferr_(k) belongs to the sameN_(wrap)-frame block as the previous frequency offset value ferr_(k−1),which is also associated with the previous un-wrapped sequence numberm_(k−1). If the conditions at step 606 are false, execution of the framesequencing method 600 proceeds to step 608, where it is determinedwhether n_(k)−n_(k−1)≦−N_(wrap)/2. If the conditions at step 608 aretrue, the frame sequencing method 600 proceeds to step 612, where thevalue of the un-wrapped sequence number m_(k) to be associated with thecurrent frequency estimate ferr_(k) is set to be equal toN_(wrap)*ceil((m_(k−1)+1)/N_(wrap))+n_(k), and it is determined that thecurrent frequency offset value ferr_(k) belongs to the N_(wrap)-frameblock that follows the N_(wrap)-frame block of the previous frequencyoffset value ferr_(k−1), which is also associated with the previousun-wrapped sequence number m_(k−1). If the conditions at step 608 arefalse, the frame sequencing method 600 proceeds to step 614, where thevalue of the un-wrapped sequence number m_(k) to be associated with thecurrent frequency estimate ferr_(k) is set to be equal toN_(wrap)*floor((m_(k−1)+1)/N_(wrap)−1)+n_(k), and it is determined thatthe current frequency offset value ferr_(k) belongs to theN_(wrap)-frame block that precedes the N_(wrap)-frame block of theprevious frequency offset value ferr_(k−1), which is also associatedwith the previous un-wrapped sequence number m_(k−1).

In the frame sequencing method 600, it is noted that the functionceil(x) returns the smallest integer not less than x, where x may be anyreal number, and that the function floor(x) returns largest integer notgreater than x, where x may be any real number.

Thus, the frame sequencing method 600 produces an un-wrapped sequencenumber m_(k) for each wrapped sequence number n_(k), which is associatedwith the frequency offset value ferr_(k) of the wrapped sequence numbern_(k), and determines which N_(wrap)-frame block the frequency offsetvalue ferr_(k) belongs to. Each of the values of the un-wrapped sequencenumbers m_(k), as determined in any one of steps 610, 612, and 614 ofthe frame sequencing method 600, indicates a frame number within theN_(wrap)-frame block to which it belongs. It is also noted that, withinany N_(wrap)-frame block, more than one un-wrapped sequence number m_(k)may be determined to have the same value. In this case, the framesequencing method 600 has determined that more than one frequency offsetvalue ferr_(k) belongs to the indicated frame. The frame sequencingmethod 600 further includes step 616, which occurs after steps 610, 612,and 614, where each frequency offset value and associated un-wrappedsequence number pair (m_(k), ferr_(k)) is output, and the index k isincremented by one.

FIG. 7 is a flow diagram of an exponential averaging method 700corresponding to the exponential averaging at 510 of FIG. 5, which isperformed by the exponential averaging unit 206 of FIG. 2. Theexponential averaging method 700 begins with initialization at step 702.At the start of a new UCP period, initialization at step 702 includessetting the initial value of the exponential average, frm_exp_av(0),equal to the first frame average value, frm_av(1), and setting the indexof the exponential averaging method, n, equal to 0. A next interpolatedsample, frm_itp(n+1), is read at step 704. After reading the nextinterpolated sample at step 704, the exponential averaging method 700proceeds to step 706, where it is determined whether the end of thecurrent UCP is reached. If the end of the current UCP period is notreached at 706, the exponential averaging method 700 proceeds to step708, where a next exponential averaging sample, frm_exp_av(n+1), isdetermined according to the equation (3) above, and the index n is setto be equal to n+1.

After step 708, the exponential averaging method 700 proceeds back tostep 704, where a next interpolated sample is read from memory. If theend of the current UCP is reached at step 706, the exponential averagingmethod 700 proceeds to step 710, where the exponential averaging method700 ends, and execution of the frequency offset estimation andcorrection method 500 proceeds to the keep-alive conditions check atstep 514 of FIG. 5.

With reference to FIG. 8, an example of the frame sequencing method 600of FIG. 6 is further described. In the example illustrated in FIG. 8,the values of the wrapped and un-wrapped sequence numbers and the valueof N_(wrap) are provided as an example. Other values are within thescope of the invention. At step 604 of FIG. 6, the value of the nextwrapped sequence number n_(k) is read as 11 according to the exampleillustrated in FIG. 8. Further, based on a previous iteration of theframe sequencing method 600 illustrated in FIG. 6 (but not described),the value of the previous wrapped sequence number n_(k−1) is 14, and thevalue of the previous un-wrapped sequence number m_(k−1) is 30. Thus,proceeding to step 606, the expression |n_(k)−n_(k−1)|<N_(wrap)/2 isevaluated as being true, as |11−14|<16/2 is true, and the value of m_(k)is set to be equal to 27, as N_(wrap)*ceil((m_(k−1)+1)/N_(wrap)−1)+n_(k)reduces to 16*ceil((30+1)/16−1)+11, which equals 27. Additionally atstep 606, ferr_(k) and ferr_(k−1) are determined to belong to the sameN_(wrap)-frame block, as illustrated in FIG. 8. In the frame sequencingmethod 600, it is noted that the determination of the N_(wrap)-frameblock to which the frequency offset value ferr_(k) belongs is determinedwith respect to the N_(wrap)-frame block to which the previous frequencyoffset value ferr_(k−1) belongs, either as the same N_(wrap)-frameblock, the following N_(wrap)-frame block, or the precedingN_(wrap)-frame block to which the previous frequency offset valuebelongs. Proceeding to step 616, the values (m_(k), ferr_(k)) are outputand the index k is incremented by 1 to k+1. The frame sequencing method600 is executed for all determined frequency offset values ferr_(k) in aUCP period. More specifically, the frame sequencing method 600 ends whenan “End of UCP” signal is received and starts again after a “Start ofUCP” is received, which is immediately after a previous “End of UCP”signal is received. The “Start of UCP' and “End of UCP” signals aregenerated periodically by the hub.

Next, the frame sequencing method 600 continues back to step 604, wherethe value of the next wrapped sequence number n_(k+1) is read as 2.Further, based on the previous iteration, the value of the previouswrapped sequence number n_(k) is 11, and the value of the previousun-wrapped sequence number m_(k) is 27. Proceeding to step 606, theexpression |n_(k+1)−n_(k)|<N_(wrap)/2 is evaluated as being false, as|2−11|<16/2 is false, and the frame sequencing method 600 proceeds tostep 608, where the expression n_(k+1)−n_(k)<−N_(wrap)/2 is evaluated asbeing true, as 2−11<−16/2 is true. Accordingly, the frame sequencingmethod 600 continues to step 612, where the value of the next un-wrappedsequence number m_(k+) to be associated with the current frequencyestimate ferr_(k+) is set to be equal to 34, asN_(wrap)*ceil((m_(k)+1)/N_(wrap))+n_(k+1) reduces to16*ceil((27+1)/16)+2, which equals 34. Additionally at step 612,ferr_(k+1) is determined to belong to the N_(wrap)-frame block thatfollows the N_(wrap)-frame block to which the frequency offset valueferr_(k) belongs, as illustrated in FIG. 8. Proceeding again to step616, the values (m_(k+1), ferr_(k+1)) are output and the index k isincremented by 1 to k+2.

The frame sequencing method 600 continues again back to step 604, wherethe value of the next wrapped sequence number n_(k+2) is read as 10.Further, based on the previous iteration, the value of the previouswrapped sequence number n_(k+1) is 2, and the value of the previousun-wrapped sequence number m_(k+1) is 34. Proceeding to step 606, theexpression |n_(k+2)−n_(k+1)|<N_(wrap)/2 is evaluated as being false, as|10−2|<16/2 is false. The frame sequencing method 600 then proceeds tostep 608, where the expression n_(k+2)−n_(k+1)<−N_(wrap)/2 is evaluatedas being false, as 10−2 <−16/2 is false. The frame sequencing method 600then proceeds to step 614, where the value of the un-wrapped sequencenumber m_(k+2) to be associated with the current frequency estimateferr_(k+2) is set to be equal to 26, asN_(wrap)*floor((m_(k+1)+1)/N_(wrap)−1)+n_(k+2) reduces to16*floor((34+1)/16−1)+10, which equals 26. Additionally at 614,ferr_(k+2) is determined to belong to the N_(wrap)-frame block thatprecedes the N_(wrap)-frame block to which the frequency offset valueferr_(k+1) belongs, as illustrated in FIG. 8. Proceeding again to step616, the values (m_(k+2), ferr_(k+2)) are output and the index k isincremented by 1 to k+3.

The frame sequencing method 600 continues again back to step 604, wherethe value of the next wrapped sequence number n_(k+3) is read as 14according to the example illustrated in FIG. 8. Further, based on theprevious iteration, the value of the previous wrapped sequence numbern_(k+2) is 10, and the value of the previous un-wrapped sequence numberm_(k+2) is 26. Proceeding to step 606, the expression|n_(k+3)−n_(k+2)|<N_(wrap)/2 is evaluated as being true, as |14−10|<16/2is true, and the value of m_(k+3) is set to be equal to 30, asN_(wrap)*ceil((m_(k+2)+1)/N_(wrap)−1)+n_(k+3) reduces to16*ceil((26+1)/16−1)+14, which equals 30.

Additionally at step 606, ferr_(k+3) and ferr_(k+2) are determined tobelong to the same N_(wrap)-frame block, as illustrated in FIG. 8. Here,it is noted that the frequency offset value ferr_(k+3) belongs to frame30 of the same N_(wrap)-frame block to which the frequency offset valueferr_(k−1) belongs, as illustrated in FIG. 8. Proceeding to step 616,the values (m_(k+3), ferr_(k+3)) are output and the index k is againincremented by 1.

With reference to FIG. 9, an example of the frame averaging at step 506of FIG. 5 is further described. In the example illustrated in FIG. 9, 5frames of a UCP period are illustrated. In FIG. 9, the vertical ory-axis represents frequency offset, and the horizontal or x-axisrepresents frame periods. Frame 1 in the example of FIG. 9 includesthree un-wrapped frame sequence number and associated frequency offsetvalue pairs (m_(k), ferr_(k)), and a frame offset average for frame 1,frm_av(1). Frame 2 in the example of FIG. 9 includes two un-wrappedframe sequence number and associated frequency offset value pairs(m_(k), ferr_(k)), and a frame offset average for frame 2, frm_av(2).Frame 3 in the example of FIG. 9 includes one un-wrapped frame sequencenumber and associated frequency offset value pair (m_(k), ferr_(k)), anda frame offset average for frame 3, frm_av(3). Frame 4 in the example ofFIG. 9 includes two un-wrapped frame sequence number and associatedfrequency offset value pairs (m_(k), ferr_(k)), and a frame offsetaverage for frame 4, frm_av(4). Frame 5 in the example of FIG. 9includes four un-wrapped frame sequence number and associated frequencyoffset value pairs (m_(k), ferr_(k)), and a frame offset average forframe 4, frm_av(4). The number of received frequency offset values perframe in FIG. 8 is an example. In practice, the number of receivedfrequency offset values per frame may be greater, fewer, or even zero.Additionally, it is noted that, although FIG. 9 illustrates theun-wrapped frame sequence number and associated frequency offset valuepairs (m_(k), ferr_(k)) at respective time positions within frames, theframe offset averages are determined based only on values of frequencyoffset values that belong to each frame (as indicated by the values ofthe un-wrapped frame sequence numbers), but not any timing withinrespective frames.

For each of the frames in the example of FIG. 9, the frame averagingunit 202 produces a simple average of each frequency offset valueferr_(k) associated with the frame, to produce a frame offset average,frm_av(n), of the frame. For example, in frame 1 of FIG. 8, frm_av(1) isdetermined to be 65 Hz, based on an average of three frequency offsetvalues, 50 Hz, 80 Hz, and 65 Hz. The frame offset averages for frames2-5 are determined by the frame averaging unit 202 similarly.

With reference to FIG. 10, the re-sampling at step 508 of FIG. 5 isfurther described. In FIG. 10, the vertical or y-axis representsinterpolated frequency offset, and the horizontal or x-axis representsthe interpolated frequency offset or re-sampling values in time (i.e.,nbpf points per frame). FIG. 10 illustrates the same five frames of theUCP period which are illustrated in FIG. 9. The re-sampling unit 204produces a plurality of interpolated frequency offset values uniformlydistributed over a time period, based on the frame offset averages. Forexample, with regard to frame 3, the re-sampling unit 204 produces nbpfinterpolated frequency offset values, frm_itp(1), frm_itp(2),frm_itp(3), frm_itp(n), . . . to frm_itp(nbpf). Each interpolatedfrequency offset value frn_itp(n) of a frame is determined based on thevalue of nbpf (i.e., the number of interpolated frequency offset valuesper frame or number of bursts per frame) and at least two frame offsetaverage values, based on an interpolation of nbpf frequency offsetvalues being uniformly distributed between the at least two frame offsetaverages. For example, in frame 3 of FIG. 10, the n^(th) frequencyoffset value frm_itp(n) is determined by the resampling unit 204 to beequal to frm_av(2)+(n/nbpf)*((frm_av(3)−(frm_av(2)), according to theequation (2) above. In this manner, the re-sampling unit 204 producesuniformly distributed frequency offset values for each frame of a UCPperiod, as required by the exponential averaging unit 206. Here, it isnoted that the frames in FIGS. 9 and 10 represent frames in the middleof a UCP period. For a first frame of a UCP period, no interpolatedfrequency offset values are determined by the re-sampling unit 204, asat least two frame offset average values have yet to be determined bythe frame averaging unit 202.

With reference to FIG. 11, the exponential averaging at step 510 of FIG.5 is further described. In FIG. 11, the vertical or y-axis representsinterpolated frequency offset, and the horizontal or x-axis representsthe interpolated frequency offset or re-sampling values in time. Asillustrated, the exponential averaging unit 206 calculates estimatedfrequency offset values based on the plurality of interpolated frequencyoffset values weighted by an exponential averaging coefficient α.Specifically, the n^(th) value of the exponential average,frm_exp_av(n), is determined by the exponential averaging unit 206 to beequal to α*frm_itp(n)+((1−α)*(frm_exp_av(n−1)), according to theequation (3) above, where α is determined according to the equation (4)above.

Example values of the equivalent averaging window size nfw of theexponential averaging coefficient α were determined based on meanfrequency errors between a reference frequency of a hub and a carrierfrequency of a signal received by the hub, for different nfw values, asdetailed in Tables 2 to 7. In Tables 2 to 7, the mean and standarddeviation values (in Hz) for mean frequency errors were determined bysimulating the frequency offset estimation algorithm of the presentinvention with a constant frequency drift rate over 1000 UCP periods,for constant frequency drifts of 0, 250, 500, 750, and 1000 Hz. Each 4-σpeak frequency error value (in Hz) for an applied frequency drift inTables 2 to 7 is equal to the mean frequency error plus 4 times thestandard deviation of the mean frequency error for an applied frequencydrift. Additionally, as a by-product of the linear predicting at 518 ofFIG. 5, an estimated rate of frequency drift (in Hz per second) and astandard deviation of the estimated rate of frequency drift (in Hz persecond) are also provided in Tables 2 to 7. The values of the equivalentaveraging window size and the results listed in Tables 2 to 7 areprovided as examples. Other values of nfw are would be understood by onehaving ordinary skill in the art, and are within the scope of theinvention.

For the values in Table 2 below, the equivalent averaging window sizenfw was set to 16, which provides an exponential averaging coefficientof 0.0124, according to the equation (4). Also, the number of frequencyoffset values, Ne, per UCP period was set to an average of 200, and thestandard deviation of the frequency offset estimation, σ_(e) was set to50 Hz.

TABLE 2 Applied Mean Freq. Std. of Freq. 4-σ Peak Estimated Std. ofFreq. Freq. Drift Error Error Freq. Error Freq. Drift Drift (Hz/s) (Hz)(Hz) (Hz) (Hz/s) (Hz/s) 0 0.11 11.78 47.22 −0.23 8.05 250 266.21 11.45312.02 248.06 7.82 500 531.60 11.70 578.42 496.22 8.09 750 797.91 12.53848.02 744.04 8.32 1000 1063.68 14.05 1119.90 991.92 9.30 nfw = 16 (α =0.0124); Ne = 200 (average); σ_(e) = 50 Hz

For the values in Table 3 below, the equivalent averaging window sizenfw was set to 16, which provides an exponential averaging coefficientof 0.0124. Also, the number of frequency offset values per UCP period,Ne, was set to an average of 5, and σ_(e) was set to 50 Hz.

TABLE 3 Applied Mean Freq. Std. of Freq. 4-σ Peak Estimated Std. ofFreq. Freq. Drift Error Error Freq. Error Freq. Drift Drift (Hz/s) (Hz)(Hz) (Hz) (Hz/s) (Hz/s) 0 −0.05 44.22 176.83 −0.39 22.51 250 262.5951.28 467.70 258.19 36.07 500 518.36 60.50 760.35 521.96 69.40 750777.93 86.10 1122.35 783.55 101.34 1000 1045.34 81.08 1369.68 1034.23107.90 nfw = 16 (α = 0.0124); Ne = 5; σ_(e) = 50 Hz

For the values in Table 4 below, the equivalent averaging window sizenfw was set to 8, which provides an exponential averaging coefficient of0.0247. Also, Ne was set to an average of 200, and σ_(e) was set to 50Hz.

TABLE 4 Applied Mean Freq. Std. of Freq. 4-σ Peak Estimated Std. ofFreq. Freq. Drift Error Error Freq. Error Freq. Drift Drift (Hz/s) (Hz)(Hz) (Hz) (Hz/s) (Hz/s) 0 0.72 17.28 69.83 −0.50 12.30 250 140.54 17.36210.00 249.86 12.17 500 281.78 18.22 354.65 499.23 13.10 750 423.1018.93 498.82 749.00 13.55 1000 563.12 20.03 643.23 999.43 14.50 nfw = 8(α = 0.0247); Ne = 200 (average); σ_(e) = 50 Hz

For the values in Table 5 below, the equivalent averaging window sizenfw was set to 8, which provides an exponential averaging coefficient of0.0247. Also, Ne was set to an average of 5, and σ_(e) was set to 50 Hz.

TABLE 5 Applied Mean Freq. Std. of Freq. 4-σ Peak Estimated Std. ofFreq. Freq. Drift Error Error Freq. Error Freq. Drift Drift (Hz/s) (Hz)(Hz) (Hz) (Hz/s) (Hz/s) 0 −1.13 61.63 245.38 0.61 32.90 250 135.57 69.10411.98 254.29 39.31 500 273.91 81.40 599.52 508.33 57.00 750 408.5496.08 792.85 762.65 66.60 1000 539.49 112.16 988.13 1020.43 92.88 nfw =8 (α = 0.0247); Ne = 5; σ_(e) = 50 Hz

For the values in Table 6 below, the equivalent averaging window sizenfw was set to 4, which provides an exponential averaging coefficient of0.0488. Also, Ne was set to an average of 200, and σ_(e) was set to 50Hz.

TABLE 6 Applied Mean Freq. Std. of Freq. 4-σ Peak Estimated Std. ofFreq. Freq. Drift Error Error Freq. Error Freq. Drift Drift (Hz/s) (Hz)(Hz) (Hz) (Hz/s) (Hz/s) 0 0.73 24.14 97.30 −0.44 17.57 250 78.61 24.69177.39 249.73 18.04 500 155.59 25.85 258.98 500.27 18.94 750 235.1926.51 341.22 749.21 19.33 1000 312.74 27.92 424.43 1000.02 20.55 nfw = 4(α = 0.0488); Ne = 200 (average); σ_(e) = 50 Hz

Finally, for the values in Table 7 below, the equivalent averagingwindow size nfw was set to 4, which provides an exponential averagingcoefficient of 0.0488. Also, Ne was set to an average of 5, and σ_(e)was set to 50 Hz.

TABLE 7 Applied Mean Freq. Std. of Freq. 4-σ Peak Estimated Std. ofFreq. Freq. Drift Error Error Freq. Error Freq. Drift Drift (Hz/s) (Hz)(Hz) (Hz) (Hz/s) (Hz/s) 0 0.12 77.79 311.30 0.54 43.22 250 80.24 84.03416.36 249.17 45.41 500 154.78 89.77 513.87 502.00 49.68 750 234.0591.57 600.33 750.73 52.01 1000 306.57 102.49 716.51 1004.91 63.39 nfw =4 (α = 0.0488); Ne = 5; σ_(e) = 50 Hz

As noted from Tables 2 to 7, the mean frequency errors are the leastwhen the equivalent averaging window size nfw was set to 4, in Tables 6and 7. Further, it is noted that the standard deviation of the frequencyerrors depends upon the value of Ne. That is, the standard deviation ofthe frequency errors decreases with greater frequency offset values perUCP period. Setting nfw equal to 4 produces good results for frequencydrifts up to +/−1 KHz/s. Smaller values of nfw result in an exponentialaverage that more closely tracks a changing frequency offset but tendsto be more susceptible by noise and less resilient to outlier values, asdiscussed and illustrated below with reference to FIG. 12. A largervalue of nfw, however, may be suitable for situations where frequencyerrors are less rapidly changing and/or when frequency offset values arenoisier (i.e., larger estimation variance) or include large outliervalues.

FIG. 12 illustrates a comparative example of exponential averages forequivalent moving average windows nfw of 4, 8, and 16. Based on nfw, ahigher value of the exponential averaging coefficient α may discountolder interpolated frequency offset values more quickly than a lowervalue of the exponential averaging coefficient α. Accordingly, asillustrated in FIG. 12, the comparative example for nfw of 8 providesgreater weight to older interpolated frequency offset values and variesmore slowly in time. Similarly, the comparative example for nfw of 16may provide an even greater weight to older interpolated frequencyoffset values than the comparative example for nfw of 8.

With reference to FIG. 13, the linear predicting at step 518 of FIG. 5is further described, in which the predicted frequency offsetferr_(proj) is predicted. As illustrated in FIG. 13, the predictedfrequency offset ferr_(proj) is predicted by a linear projection, basedon a slope of the frequency difference between a last sample of theexponential average, frm_exp_av(n_(last)), and a sample of theexponential average p frames before the last sample of the exponentialaverage, frm_exp_av(n_(last)-nbpf*p). According to the exampleillustrated in FIG. 12, the predicted frequency offset ferr_(proj) isdetermined by a 6-frame linear projection, based on a sample of theexponential average 8 frames before the last sample of the exponentialaverage. Specifically, ferr_(proj) is determined to the equal tofrm_exp_av(n_(last))(6/8(frm_exp_av(n_(last))−frm_exp_av(n_(last)−nbpf*8))), according tothe equation (5) above. A slope may be determined from the 6-framelinear projection, so that an estimated rate of frequency drift (in Hzper second) and a standard deviation of the estimated rate of frequencydrift (in Hz per second) are provided as a product of the linearpredicting. In the example above, the predicted frequency offsetferr_(proj) is predicted according to a 6 frame period of acommunications delay between the hub 102 and one of the remotes 104 and106. However, depending upon the properties of the communicationsnetwork, ferr_(proj) may be predicted for values of the communicationsdelay other than 6 frames. The value of ferr_(proj) may be packaged in afrequency error correction command and transmitted from a hub to aremote, so that the remote may make appropriate adjustments to itstransmission carrier frequency based on the value of ferr_(proj).

Referring back to FIG. 5, the frequency offset correction at step 520includes synchronizing a carrier frequency source based on the estimatedfrequency offset or the predicted frequency offset ferr_(proj). Forexample, the communication interface 426 may include the hardware and/orsoftware necessary to synchronize a carrier frequency source usinglocked loop architectures implemented in hardware, software, orcombinations of hardware and software, as understood in the art. FIGS.14-20 are graphs illustrating a simulation of the frequency offsetestimation algorithm of the present invention, where the number offrequency offset values per frame Ne/frame was 10 and the equivalentmoving average window nfw was 4.

FIG. 14 is a graph illustrating the frequency drift between a hub and aremote over time, the remote-compensated observed frequency drift at thehub over time, and the algorithm-compensated frequency drift at the hubover time. In FIG. 14, the maximum rate of frequency drift between thehub and the remote is 1 KHz per second. The remote-compensated frequencydrift represents the frequency drift observed at the hub, while thetransmission carrier frequency of the remote is being updated accordingto frequency correction commands produced each UCP period by thefrequency offset estimation algorithm of the present invention. As shownin FIG. 14, the remote-compensated frequency drift is greatly reduced(i.e., approximates 0), each 5 second UCP period. Additionally, thediscrete points of frequency error over time represent actual frequencyerror at the remote, right after the remote compensates for thefrequency drift based on the frequency offset estimation and predictionalgorithm of the present invention.

Shifting the scale of the y-axis of FIG. 14 to a reduced range offrequencies, FIG. 15 illustrates, for the same simulation as FIG. 14,non-uniform and disordered frequency offset values determined at thehub, frame averages determined at the hub, and exponential averagesamples determined at the hub. Further shifting the x-axis and y-axisscales of FIG. 15 to a reduced range of frequencies and time, FIG. 16illustrates the non-uniform and disordered frequency offset valuesdetermined at the hub, the frame averages determined at the hub, and theexponential average samples determined at the hub.

As shown in FIG. 16, the non-uniform and disordered frequency offsetvalues determined at the hub include noise attributed to imprecision inthe determination of the frequency offset values at the hub.

FIG. 17 is a graph illustrating a comparison between the algorithm ofthe present invention and the conventional simple average method interms of estimation error (i.e., the difference between the truefrequency offset and the estimated frequency offset), at end of each UCPperiod.

FIG. 18 is a graph illustrating the difference between the estimatedfrequency drift rate (in Hz/s) estimated by the present invention andthe actual total (uncorrected) frequency drift between the hub and theremote, over UCP periods.

FIG. 19 is a graph illustrating the number of received packets over UCPperiods.

FIGS. 20-23 are graphs illustrating a simulation of the frequency offsetestimation algorithm of the present invention, where the number offrequency offset values per UCP period Ne/UCP was set as 5 and theequivalent moving average window nfw was set as 4. The waveformsillustrated in FIGS. 20-23 are analogous to those respectivelyillustrated in FIGS. 14 and 16-18.

FIGS. 24-27 are graphs illustrating a simulation of the frequency offsetestimation algorithm of the present invention, where the number offrequency offset values per UCP period Ne/UCP was set as 3 and theequivalent moving average window nfw was set as 4. The waveformsillustrated in FIGS. 24-27 are analogous to those respectivelyillustrated in FIGS. 14 and 16-18.

FIGS. 28-33 are graphs illustrating a simulation of the frequency offsetestimation algorithm of the present invention, where the number offrequency offset values per frame Ne/frame was set as 10, the equivalentmoving average window nfw was set as 4, and a sinusoidal frequency driftwas considered. The waveforms illustrates in FIGS. 28-33 are analogousto those respectively illustrated in FIGS. 14-19.

In summary, the frequency offset estimation apparatus, method, andsystem of the present invention can reliably track frequency errors at adrift rate of at least 1 KHz/s. Tracking error is a function of, atleast, the exponential averaging coefficient (the larger coefficient,the larger the error and the smaller the estimation variance).Performance is determined by the peak error which is approximated by themean error plus 4 times the standard deviation of the UCP estimationerror. Specifying a maximum frequency drift, f_(drift), that can betolerated by a demodulator of a hub as 1 KHz/s, the upper limit of thefrequency error within a UCP period should be no more than f_(drift)times the number of seconds in a UCP, t_(UCP), or 5 KHz for a UCPduration of 5 s. To accommodate a lower frequency drift rate of 800 Hz/swith a reasonable margin, the equivalent window size should be no morethan 8 frames according to the simulation results in Table 2 throughTable 7. One choice for the equivalent averaging window size nfw is 4frames, which allows a maximum drift rate of (5000−716)/5≈857 Hz/s. Morespecifically, setting nfw to a value of 4 provides a compromise betweentracking speed and estimation variance. It allows fast tracking of thefrequency drift up to +/−1 KHz/s while sufficiently smoothing out noisyand outlier frequency offset estimate values.

The frequency offset estimation and correction apparatus, method, andsystem of the present invention is designed to operate suitably, even ifa number of available estimates from the remote drops to 3. In a usualcase, when the number of received estimates is much higher than 5, whichis the minimum number for the ‘keep alive’ mode, the algorithm producesgood results even for very noisy frequency offset values. This can beseen from the graphs of FIGS. 28-33, where the standard deviation forshort term frequency stability is 200 Hz. Here, short term frequencystability is considered as a random Gaussian process having a standarddeviation or sigma of 200 Hz. In other words, in the examples of FIGS.28-33, there is a 0.997 probability that a frequency is within a rangeof +/−3 sigma (i.e., +/−600 Hz) of its nominal value.

Further, the frequency offset estimation and correction apparatus,method, and system of the present invention combines the re-sequencing,frame averaging, and re-sampling with a low-complexity and flexibleexponential average, to achieve both low complexity and flexibility ofimplementation. Additionally, re-sampling may be combined with a simplemoving average, having performance that is similar to the exponentialaverage described above. Depending on the average window size and there-sampling granularity, a simple moving average may require a largememory for the moving average (as opposed to just a single sample memoryused by the exponential average). In terms of computational complexity,the combined re-sequencing, frame averaging, re-sampling, andexponential averaging requires merely 3 multiplications and 3 additionsfor each interpolated sample. It can be further reduced to just 1multiplication and 4 additions per interpolated sample for some averagewindow sizes, which is far less complex than a conventional FIR filerre-sampler in terms of both memory requirement and computationalcomplexity.

Variations of the frequency offset estimation apparatus, method, andsystem described above are possible in light of the above description.Thus, the frequency offset estimation apparatus, method, and systemdescribed above may be practiced other than as specifically described,based on art recognized equivalents understood by those having ordinaryskill in the art.

1. A frequency offset estimation and correction apparatus, comprising: aframe averaging unit to average, for each of a plurality of frames, aplurality of frequency offset values to obtain a frame offset averagefor each of the plurality of frames; a re-sampling unit to produce, foreach of the plurality of frames, a plurality of interpolated frequencyoffset values uniformly distributed over a time period of a frame of theplurality of frames based on the frame offset average of the frame and aframe offset average of at least one frame that precedes the frame; andan exponential averaging unit to calculate the estimated frequencyoffset based on the plurality of interpolated frequency offset valuesweighted by an exponential averaging coefficient.
 2. The apparatus ofclaim 1, wherein the frame averaging unit further comprises: a framesequencing unit to sequence the plurality of frequency offset values toproduce sequenced frequency offset values based on sequence numbers inreceived bursts; and a frame averaging unit to average the sequencedfrequency offset values to obtain the frame offset average of eachframe.
 3. The apparatus of claim 2, wherein the frame sequencer isfurther configured to sequence the plurality of frequency offset valuesamong N-frame blocks based on the sequence numbers in received bursts.4. The apparatus of claim 1, wherein the exponential averaging unit isfurther configured to determine a current sample of the estimatedfrequency offset based on a current interpolated frequency offset value,a previous sample of the estimated frequency offset, and the exponentialaveraging coefficient.
 5. The apparatus of claim 1, further comprising:a linear prediction unit to determine a predicted frequency offset basedon the estimated frequency offset and a communications delay between thecommunications hub and a remote communications unit, the predictedfrequency offset including a frequency offset predicted for a timeperiod of the communications delay between the communications hub to theremote communications unit.
 6. The apparatus of claim 5, furthercomprising: a frequency offset correction unit to synchronize a carrierfrequency source based on the predicted frequency offset.
 7. Theapparatus of claim 1, wherein the exponential averaging coefficient isdetermined according to a number of frames of an equivalent movingaverage window and a number of the plurality of interpolated frequencyoffset values or number of bursts per frame.
 8. The apparatus of claim7, wherein the exponential averaging coefficient is determined as${\alpha = \frac{2}{{{nfw} \cdot {nbpf}} + 1}},$ where α is theexponential averaging coefficient, nfw is the number of frames of theequivalent moving average window, and nbpf is the number of theplurality of interpolated frequency offset values or number of burstsper frame.
 9. The apparatus of claim 8, wherein the moving averagewindow size is 4 frames and the number of the plurality of interpolatedfrequency offset values per frame is
 10. 10. A frequency offsetestimation and correction method, comprising: averaging, for each of aplurality of frames, a plurality of frequency offset values to obtain aframe offset average for each frame; producing, for each of theplurality of frames, a plurality of interpolated frequency offset valuesuniformly distributed over a time period of the frame based on the frameoffset average of the frame and a frame offset average of at least oneprevious frame; and calculating the estimated frequency offset based onthe plurality of interpolated frequency offset values weighted by anexponential averaging coefficient.
 11. The method of claim 10, furthercomprising: sequencing the plurality of frequency offset values toproduce sequenced frequency offset values based on sequence numbers inreceived bursts; and averaging the sequenced frequency offset values toobtain the frame offset average of each frame.
 12. The method of claim11, wherein the sequencing sequences the plurality of frequency offsetvalues among N-frame blocks based on the sequence numbers in receivedbursts.
 13. The method of claim 10, wherein the calculating theestimated frequency offset includes determining a current sample of theestimated frequency offset based on a current interpolated frequencyoffset value, a previous sample of the estimated frequency offset, andthe exponential averaging coefficient.
 14. The method of claim 10,further comprising: determining a predicted frequency offset based onthe estimated frequency offset and a communications delay between thecommunications hub and a remote communications unit, the predictedfrequency offset including a frequency offset predicted for a timeperiod of the communications delay between the communications hub to theremote communications unit.
 15. The method of claim 10, furthercomprising: synchronizing a carrier frequency source based on thepredicted frequency offset.
 16. The method of claim 10, wherein theexponential averaging coefficient is determined according to a number offrames of an equivalent moving average window and a number of theplurality of interpolated frequency offset values or number of burstsper frame.
 17. The method of claim 16, wherein the exponential averagingcoefficient is determined as${\alpha = \frac{2}{{{nfw} \cdot {nbpf}} + 1}},$ where α is theexponential averaging coefficient, nfw is the number of frames of theequivalent moving average window, and nbpf is the number of theplurality of interpolated frequency offset values per frame.
 18. Themethod of claim 17, wherein the moving average window size is 4 and thenumber of the plurality of interpolated frequency offset values perframe is
 10. 19. A computer readable storage medium storing computerreadable instructions thereon that, when executed by an arithmeticprocessor, direct the arithmetic processor to perform a frequency offsetestimation and correction method comprising: averaging, for each of aplurality of frames, a plurality of frequency offset values to obtain aframe offset average for each frame; producing, for each of theplurality of frames, a plurality of interpolated frequency offset valuesuniformly distributed over a time period of the frame based on the frameoffset average of the frame and a frame offset average of at least oneprevious frame; and calculating the estimated frequency offset based onthe plurality of interpolated frequency offset values weighted by anexponential averaging coefficient.
 20. A communications system,comprising: a communications hub including a receiver to receive aplurality of communications bursts and generate a frequency offset valuefor each of the bursts, to generate frequency offset values, a frameaveraging unit to average, for each of a plurality of frames, aplurality of the frequency offset values to obtain a frame offsetaverage for each of the plurality of frames, a re-sampling unit toproduce, for each of the plurality of frames, a plurality ofinterpolated frequency offset values uniformly distributed over a timeperiod of a frame of the plurality of frames based on the frame offsetaverage of the frame and a frame offset average of at least one framethat precedes the frame, and an exponential averaging unit to calculatethe estimated frequency offset based on the plurality of interpolatedfrequency offset values weighted by an exponential averagingcoefficient, and a transmitter to transmit the estimated frequencyoffset; and a remote communications unit including a receiver to receivethe estimated frequency offset and synchronize a carrier frequencysource of the remote communications unit based on the received estimatedfrequency offset.
 21. A remote communications unit, comprising: areceiver to receive an estimated frequency offset; and a frequencyoffset correction unit to synchronize a carrier frequency source andapply a predicted timing correction to bursts before transmission of thebursts based on the estimated frequency offset, the estimated frequencyoffset being determined according to an exponential average of aplurality of interpolated frequency offset values weighted by anexponential averaging coefficient, the plurality of interpolatedfrequency offset values being uniformly distributed over a time periodof a frame based on frame offset averages of frequency offset values ofthe frames.
 22. A hub unit comprising the frequency offset estimationand correction apparatus of claim 1.